'use strict';
const Service = require('egg').Service;

class ProductsController extends Service {
  async getproducts (data) {
    console.log('获取舱位：', data);
    // if (Object.keys(data).length !== 0) {
    let sql = 'select * from products';
    const content = [];// 参数
    let isMore = false;// 是否有多个查询参数,只用于搜索查询
    /**
         * @模糊查询-量大的时候效率低
         * select * from user where name like ? % 内容 %
         * 在user表中全局查找name值 == 内容的
         * % 内容 % 全局查找内容
         *   内容 %  查找以 内容 开头的数据
         * */
    if (data.product_id) {
      sql += ' where product_id = ?';
      content.push(data.product_id);
    }
    if (data.product_name) {
      sql += ' where product_name like ?';
      content.push('%' + data.product_name + '%');
      isMore = true;
    }
    if (data.product_type) {
      if (isMore) { // true代表有多个参数
        sql += 'and product_type LIKE ?';// and是两个条件都必须满足，or是或的关系
      } else {
        sql += ' WHERE product_type LIKE ?';
      }
      content.push('%' + data.product_type + '%');
      isMore = true;
    }
    if (data.begin && data.end) {
      // const begin = new Date().getTime(data.begin);
      console.log(data.begin);

      // const end = new Date().getTime(data.end);
      console.log(data.end);
      if (isMore) { // true代表有多个参数
        // select * from order1 where create_time BETWEEN '2022-01-01 09:18:36' and '2022-03-25 09:18:36'
        sql += 'and publish_time between ? and ?';// and是两个条件都必须满足，or是或的关系
      } else {
        sql += ' WHERE publish_time between ? and ?';
      }
      content.push(data.begin, data.end);
      isMore = true;
    }
    // 开启分页
    if (data.current && data.pageSize) {
      const current = data.current;// 当前页码
      const pageSize = data.pageSize;// 一页展示多少条数据
      sql += ' LIMIT ?,?';
      content.push(parseInt((current - 1) * pageSize), parseInt(pageSize));
    }
    const res = {
      code: 200,
      page: data.current,
      pageSize: data.pageSize,
      data: [],
      total: '',
    };
    res.data = await this.app.mysql.query(
      sql, content
    );
    res.total = await this.app.mysql.count('products');
    return res;
  }
  async getorderproduct (data) {
    console.log('获取订单产品：', data);
    const res = await this.app.mysql.select('products', { where: { product_id: data.product_id } });
    return res;
  }
  async postproduct (data) {
    console.log('发布产品：', data);
    await this.app.mysql.insert('products', data);
    return {
      code: 200,
      message: '发布成功',
    };
  }
  // get获取我的发布
  async getmysend (data) {
    console.log('获取发布：', data);
    const res = await this.app.mysql.select('products', data.users_id);
    return res;
  }
  // post修改发布舱位
  async updateproduct (data) {
    console.log('修改发布：', data);
    const where = {
      where: {
        product_id: data.product_id,
      },
    };
    const res = await this.app.mysql.update('products', data, where);
    return res;
  }
  // get删除舱位
  async delproduct (data) {
    console.log('删除舱位：', data);
    const where = {
      product_id: data.product_id,
    };
    await this.app.mysql.delete('products', where);
    return {
      code: 200,
      message: `订单:${data.product_id},删除成功!`,
    };
  }
}
module.exports = ProductsController;
